package peca;
import javax.swing.ImageIcon;

import estrutura.Celula;
import estrutura.Peca;


public class Rei extends Peca{
	
	public Rei(CorPeca cor) {
		 StringBuilder caminhoImagem = new StringBuilder("images/rei");
		 caminhoImagem.append(cor.sufix()).append(".png");
		 setImagem(new ImageIcon(getClass().getClassLoader().getResource(caminhoImagem.toString())));
		 setCor(cor);
		 setNome(cor == CorPeca.BRANCA ? REI_B : REI_P);
	}

	@Override
	public boolean isMovimentoValido(Celula origem, Celula destino, Celula[][] celulas) {
		if(isRotaValida(origem, destino) && isNotPecaNoCaminho(origem, destino, celulas)){
			return true;
		}
		
		return false;
	}
	
	private boolean isRotaValida(final Celula origem, final Celula destino) {
		int o = Integer.parseInt(origem.getText());
		int d = Integer.parseInt(destino.getText());
		int resultado = o - d;
		resultado = resultado * Integer.signum(resultado);
		return resultado == 11 || resultado == 10 || resultado == 9 || resultado == 1;
	}
	
	private boolean isNotPecaNoCaminho(Celula origem, Celula destino, Celula[][] celulas) {
		return destino.getPeca()==null || (origem.getPeca().getCor()!=destino.getPeca().getCor());
	}		
}
